#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>

//void test()
//{
//	int* p = (int*)malloc(100);
//	if (NULL != p)
//	{
//		*p = 20;
//	}
//}
//
//int main()
//{
//	test();
//	while (1);
//}

//char* GetMemory(char* p)
//{
//	p = (char*)malloc(100);
//	return p;
//}
//
//void Test()
//{
//	char* str = NULL;
//	str = GetMemory(str);
//	strcpy(str, "hello world");
//	printf(str);
//	free(str);
//	str = NULL;
//}

//char* GetMemory()
//{
//	char* p = (char*)malloc(20);
//	strcpy(p, "hello world");
//	return p;
//}
//
//void Test()
//{
//	char* str = NULL;
//	str = GetMemory();
//	printf(str);
//	free(str);
//	str = NULL;
//}
//char* GetMemory()
//{
//	static char p[] = "hello world";
//	return p;
//}
//
//void Test()
//{
//	char* str = NULL;
//	str = GetMemory();
//	printf(str);
//}

char* GetMemory()
{
	char* p = "hello world";
	return p;
}

void Test()
{
	char* str = NULL;
	str = GetMemory();
	printf(str);
}

int main()
{
	Test();
	return 0;
}